package br.com.expositor.apresentacao.infra.imp;

import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.panel.FeedbackPanel;

import br.com.expositor.repositorio.DAO.entidade.infra.filtro.IFiltro;

public abstract class PaginaConsultaGenerica<FILTRO extends IFiltro> extends
		PaginaTemplate {

	private FILTRO filtro;

	private FeedbackPanel feedbackPanel;

	public PaginaConsultaGenerica(FILTRO filtro) {
		this(filtro, null);
	}

	public PaginaConsultaGenerica(FILTRO filtro, PaginaGenerica paginaRetorno) {
		super(paginaRetorno);
		this.filtro = filtro;
	}

	public abstract void acaoBotaoConsultar(AjaxRequestTarget target);

	public void acaoBotaoVoltar() {
		this.setResponsePage(this.getPaginaRetorno());
	}

	public FILTRO getFiltro() {
		return this.filtro;
	}

	public abstract String getNomeEntidade();

	@Override
	public void montarPagina() {
		// painel de mensagens
		this.feedbackPanel = new FeedbackPanel("mensagensConsulta");
		this.add(this.feedbackPanel);
		this.add(new Label("tituloConsulta", "Cadastro "
				+ this.getNomeEntidade()));
	}

	public void setFiltro(FILTRO filtro) {
		this.filtro = filtro;
	}

}
